from parsel import Selector

"""
提取属性怎么做呢？类似的方式，也直接在 XPath 或者 CSS Selector 中表示出来就好了
"""
html = '''
<div>
    <ul>
         <li class="item-0">first item</li>
         <li class="item-1"><a href="link2.html">second item</a></li>
         <li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>
         <li class="item-1 active"><a href="link4.html">fourth item</a></li>
         <li class="item-0"><a href="link5.html">fifth item</a></li>
     </ul>
 </div>
'''

"""
  示例1 提取属性  提取第三个 li 节点内部的 a 节点的 href 属性
  分别用 css 和 xpath 方法实现。我们根据同时包含 item-0 和 active 这两个 class 为依据来选取第三个 li 节点，然后进一步选取了里面的 a 节点，
  对于 CSS Selector，选取属性需要加 ::attr() 并传入对应的属性名称来选取，
  对于 XPath，直接用 /@ 再加属性名称即可选取。最后统一用 get 方法提取结果即可
"""
selector = Selector(html)
res = selector.css('.item-0.active a::attr("href")')
print(res.get()) # link3.html
res1 = selector.xpath('//li[contains(@class,"item-0") and contains(@class,"active")]/a/@href')
print(res1.get()) # link3.html

